﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;

using vr=AnasisVarliklar;
namespace AnasisVeriErisimKatmani
{
    public class Ogrenci
    {


        /// <summary>
        /// öğretmene göre öğrenci getirir
        /// </summary>
        /// <param name="calisanID">öğretmen no</param>
        /// <param name="sezon">mevcur sezon</param>
        /// <returns>data table</returns>
        public static DataTable ogrenciBilgileriniGetir(int calisanID,string sezon)
        {
            DataTable dt = new DataTable();
            string spAdi = "sp_ogrenci_bilgi_getir";
            Komut k = new Komut(spAdi);
            k.ParametreEkle("@calisan_id", calisanID);
            k.ParametreEkle("@sezon", sezon);
            dt = k.IsletDataTable(k);
            k.Temizle();
            return dt;
        }

        /// <summary>
        /// Sınıfa göre öğrenci getirir
        /// </summary>
        /// <param name="sınıf">sınıf numarası</param>
        /// <returns>data table</returns>
        public static DataTable ogrenciBilgileriniGetir(int sınıf)
        {
            DataTable dt = new DataTable();
            string spAdi = "sp_ogrenci_getir_sinif_ID";
            Komut k = new Komut(spAdi);
            k.ParametreEkle("@sinifi", sınıf);
            
            dt = k.IsletDataTable(k);
            k.Temizle();
            return dt;
        }

        public static DataTable ogrenciBilgileriniGetirSezon(int sezon)
        {
            DataTable dt = new DataTable();
            string spAdi = "sp_eski_ogrenci_getir";
            Komut k = new Komut(spAdi);
            k.ParametreEkle("@sezon", sezon);

            dt = k.IsletDataTable(k);
            k.Temizle();
            return dt;
        }

        public static DataTable ogrenciBilgileriniGetirTc(string tc)
        {
            DataTable dt = new DataTable();
            string spAdi = "sp_ogrenci_getir_tc_no";
            Komut k = new Komut(spAdi);
            k.ParametreEkle("@tc_no", tc);

            dt = k.IsletDataTable(k);
            k.Temizle();
            return dt;
        }

        public static DataTable ogrenciBilgileriniGetirCalisan(int calisanID)
        {
            DataTable dt = new DataTable();
            string spAdi = "sp_ogrenci_bilgilerini_getir_calisanID";
            Komut k = new Komut(spAdi);
            k.ParametreEkle("@calisan_id", calisanID);

            dt = k.IsletDataTable(k);
            k.Temizle();
            return dt;
        }
        public static vr.Ogrenci ogrenciBilgileriniGetirID(int ogrenciID)
        {
            vr.Ogrenci ogrenci = new vr.Ogrenci();

            string spAdi = "sp_ogrenci_getir_ogrenci_ID";

            Komut k = new Komut(spAdi);
            k.ParametreEkle("@ogrenci_id", ogrenciID);
            SqlDataReader sdr = k.IsletReader();
            
            while (sdr.Read())
            {
               ogrenci.OgrenciID = Komut.Int32Getir(sdr,"ogrenci_id");
               ogrenci.TcNo = Komut.StringGetir(sdr, "tc_no");
               ogrenci.Ad= Komut.StringGetir(sdr,"ad");
               ogrenci.Soyad= Komut.StringGetir(sdr, "soyad");
               ogrenci.DogumYeri= Komut.StringGetir(sdr, "dgm_yeri");
               ogrenci.DogumTarihi =Komut.StringGetir(sdr, "dogum_trh");
               ogrenci.Cinsiyet = Komut.Int32Getir(sdr, "cinsiyet");
               ogrenci.EvAdresi =Komut.StringGetir(sdr, "ev_adresi");
               ogrenci.EvTel =Komut.StringGetir(sdr, "ev_tel");
               ogrenci.Sinifi = Komut.Int32Getir(sdr, "sinifi");
               ogrenci.KayitTarihi=  Komut.StringGetir(sdr, "kyt_trh");
               ogrenci.Durum = Komut.Int32Getir(sdr, "durum");
               ogrenci.OgrenciResim= Komut.StringGetir(sdr, "ogrenci_rsm");
               ogrenci.KanGrubu = Komut.Int32Getir(sdr, "kan_grubu");
               ogrenci.VeliID = Komut.Int32Getir(sdr, "veli_ID");
               ogrenci.KayitParasi = Komut.Int32Getir(sdr, "kayit_parasi");
            }
            sdr.Close();
            k.Temizle();
            return ogrenci;
        }
        /// <summary>
        /// Öğrenci Ekleme
        /// </summary>
        /// <param name="vr.Ogrenci">öğrenci nesnesi</param>
        /// <returns>sonuc 0 dan büyükse true döndürür</returns>
        ///
       /* public static bool ogrenciEkle(vr.Ogrenci ogrenci)
        {
            string spAdi = "sp_ogrenci_tbl_ekle";
            Komut k = new Komut(spAdi);

            int sonuc = 0;
            k.ParametreEkle("@ad",ogrenci.Ad);
            k.ParametreEkle("@soyad",ogrenci.Soyad);
            k.ParametreEkle("@dgm_yeri" ,ogrenci.DogumYeri);
            k.ParametreEkle("@dogum_trh" ,ogrenci.DogumTarihi);
            k.ParametreEkle("@cinsiyet",ogrenci.Cinsiyet);
            k.ParametreEkle("@ev_adresi" ,ogrenci.EvAdresi);
            k.ParametreEkle("@ev_tel" ,ogrenci.EvTel);
            k.ParametreEkle("@sinifi" ,ogrenci.Sinifi);
            k.ParametreEkle("@kyt_trh" ,ogrenci.KayitTarihi);
            k.ParametreEkle("@durum" ,ogrenci.Durum);
            k.ParametreEkle("@ogrenci_rsm" ,ogrenci.OgrenciResim);
            k.ParametreEkle("@kan_grubu" ,ogrenci.KanGrubu);
            

            sonuc=k.Islet();
            k.Temizle();
            return sonuc>0;
        }*/

        /// <summary>
        /// Öğrenci Güncelleme
        /// </summary>
        /// <param name="vr.Ogrenci">öğrenci nesnesi</param>
        /// <returns>sonuc 0 dan büyükse true döndürür</returns>
        ///
        public static bool ogrenciGuncelle(vr.Ogrenci ogrenci)
        {
            string spAdi = "sp_ogrenci_tbl_guncelle";
            Komut k = new Komut(spAdi);

            int sonuc = 0;
            k.ParametreEkle("@ogrenci_id", ogrenci.OgrenciID);
            k.ParametreEkle("@ad", ogrenci.Ad);
            k.ParametreEkle("@soyad", ogrenci.Soyad);
            k.ParametreEkle("@dgm_yeri", ogrenci.DogumYeri);
            k.ParametreEkle("@dogum_trh", ogrenci.DogumTarihi);
            k.ParametreEkle("@cinsiyet", ogrenci.Cinsiyet);
            k.ParametreEkle("@ev_adresi", ogrenci.EvAdresi);
            k.ParametreEkle("@ev_tel", ogrenci.EvTel);
            k.ParametreEkle("@sinifi", ogrenci.Sinifi);
            k.ParametreEkle("@kyt_trh", ogrenci.KayitTarihi);
            k.ParametreEkle("@durum", ogrenci.Durum);
            k.ParametreEkle("@ogrenci_rsm", ogrenci.OgrenciResim);
            k.ParametreEkle("@kan_grubu", ogrenci.KanGrubu);
            k.ParametreEkle("@tc_no", ogrenci.TcNo);
            sonuc=k.Islet();
            k.Temizle();
            return sonuc > 0;
        }

        /// <summary>
        /// ogrenci ekleme
        /// </summary>
        /// <param name="ogrenci">ogrenci nesnesi</param>
        /// <param name="veli">veli nesnesi</param>
        /// <param name="ogrenciKisiselBilgi">ogrenci kisisel bilgi nesnesi</param>
        /// <returns></returns>
        public static bool ogrenciEkle(vr.Ogrenci ogrenci, vr.Veli veli, vr.OgrenciKisiselBilgi ogrenciKisiselBilgi,int sezonID)
        {
            string spAdi = "sp_veli_ogrn_hakk_tbl_ekle";
            Komut k = new Komut(spAdi);

            int sonuc = 0;
            k.ParametreEkle("tc_no", ogrenci.TcNo);
            k.ParametreEkle("@ad", ogrenci.Ad);
            k.ParametreEkle("@soyad", ogrenci.Soyad);
            k.ParametreEkle("@dgm_yeri", ogrenci.DogumYeri);
            k.ParametreEkle("@dogum_trh", ogrenci.DogumTarihi);
            k.ParametreEkle("@ogrcinsiyet", ogrenci.Cinsiyet);
            k.ParametreEkle("@ev_adresi", ogrenci.EvAdresi);
            k.ParametreEkle("@ev_tel", ogrenci.EvTel);
            k.ParametreEkle("@sinifi", ogrenci.Sinifi);
           // k.ParametreEkle("@kyt_trh", ogrenci.KayitTarihi);
            k.ParametreEkle("@durum", ogrenci.Durum);
            k.ParametreEkle("@ogrenci_rsm", ogrenci.OgrenciResim.ToString());
            k.ParametreEkle("@kan_grubu", ogrenci.KanGrubu);
            k.ParametreEkle("@kayit_parasi", ogrenci.KayitParasi);

            k.ParametreEkleOut("@ogrenci_id",SqlDbType.Int,0);

            k.ParametreEkle("@yemek_durumu", ogrenciKisiselBilgi.YemekDurumu);
            k.ParametreEkle("@konusma_durumu", ogrenciKisiselBilgi.KonusmaDurumu);
            k.ParametreEkle("@fobi_durumu ", ogrenciKisiselBilgi.FobiDurumu);
            k.ParametreEkle("@sevdigi_yemek ", ogrenciKisiselBilgi.SevdigiYemek);
            k.ParametreEkle("@sevmedigi_yemek ", ogrenciKisiselBilgi.SevmedigiYemek);
            k.ParametreEkle("@davranıs_sorunu ", ogrenciKisiselBilgi.DavranisSorunu);
            k.ParametreEkle("@hepatit_b_asi ", ogrenciKisiselBilgi.HepatitBAsi);
            k.ParametreEkle("@kkk ", ogrenciKisiselBilgi.Kkk);
            k.ParametreEkle("@td ", ogrenciKisiselBilgi.Td);
            k.ParametreEkle("@dabt_ıpa_hip ", ogrenciKisiselBilgi.DabtIpaHip);
            k.ParametreEkle("@kizamik ", ogrenciKisiselBilgi.Kizamik);
            k.ParametreEkle("@sucicegi ", ogrenciKisiselBilgi.Sucicegi);
            k.ParametreEkle("@sarilik ", ogrenciKisiselBilgi.Sarilik);
            k.ParametreEkle("@kabakulak ", ogrenciKisiselBilgi.Kabakulak);
            k.ParametreEkle("@hepatit_a ", ogrenciKisiselBilgi.HepatitA);
            k.ParametreEkle("@hapatit_b", ogrenciKisiselBilgi.HepatitB);
            k.ParametreEkle("@zatüre ", ogrenciKisiselBilgi.Zatüre);
            k.ParametreEkle("@menenjit ", ogrenciKisiselBilgi.Menenjit);
            k.ParametreEkle("@veli_onemli_notu", ogrenciKisiselBilgi.VeliOnemliNot);


            k.ParametreEkle("@veli_adi", veli.Ad);
            k.ParametreEkle("@veli_soyad ", veli.Soyad);
            k.ParametreEkle("@veli_cep_tel", veli.CepTel);
            k.ParametreEkle("@veli_iş_tel ", veli.IsTel);
            k.ParametreEkle("@veli_iş_adresi", veli.IsAdresi);
            k.ParametreEkle("@veli_yakınlık ", veli.Yakinlik);
            k.ParametreEkle("@veli_meslek ", veli.Meslek);
            k.ParametreEkle("@veli_egitim ", veli.Egitim);
            k.ParametreEkle("@veli_mail ", veli.Eposta);
            k.ParametreEkle("@veli_medeni_hal ", veli.MedeniHal);
            k.ParametreEkle("@veli_oz_uvey ", veli.OzUvey);
            k.ParametreEkle("@cinsiyet ", veli.Cinsiyet);
            k.ParametreEkle("@veli_ev_adresi ", veli.EvAdresi);
            k.ParametreEkle("@veli_tc_no ", veli.TcNo);
            k.ParametreEkle("@veli_ev_tel ", veli.EvTel);
            k.ParametreEkleOut("@veli_id", SqlDbType.Int, 0);

            k.ParametreEkle("@sezon", sezonID);
            sonuc = k.Islet();
            k.Temizle();
            return sonuc > 0;
        }


        public static bool ogrenciSil(int ogrenciID)
        {

            String spAdi = "sp_ogrenci_sil";
            Komut k = new Komut(spAdi);
            k.ParametreEkle("@ogrenci_id", ogrenciID);
            int sonuc = 0;
            sonuc = k.Islet();
            k.Temizle();
            return sonuc > 0;
        }

        
    }
}
